/**
 * @author  phi
 */

var TM = TM || {};

(function(np){
    
    np = np || window;
    
    /**
     * id の一致する要素を取得.
     * document.getElementById の Alias.
     * @param   {String}    id  id.
     */
    np.$id = function(id) {
        return document.getElementById(id);
    };
    
    /**
     * class 名の一致する要素リストの index(デフォルトは0) 番目の要素を取得.
     * document.getElementsByClassName の Alias.
     * @param   {String}    className   class name.
     * @param   {Number}    index       element index.
     */
    np.$class = function(className, index) {
        return (index) ?
            document.getElementsByClassName(className)[index] :
            document.getElementsByClassName(className)[0];
    };
    
    /**
     * class 名の一致する要素リストを取得.
     * document.getElementsByClassName の Alias.
     * @param   {String}    className   class name.
     */
    np.$classAll = function(className) {
        return document.getElementsByClassName(className);
    };
        
    /**
     * css セレクタの一致する要素リストの index 番目の要素を取得.
     * document.querySelector の Alias.
     */
    np.$query = function(query, index) {
        return (index) ?
            document.querySelectorAll(query)[index] : 
            document.querySelector(query);
    };
    
    /**
     * css セレクタの一致する要素リストを取得.
     * document.querySelectorAll の Alias.
     */
    np.$queryAll = function(query) {
        return document.querySelectorAll(query);
    };
    
    /**
     * tagName 要素を生成する.
     * document.createElement の Alias.
     */
    np.$create = function(tagName)
    {
        return document.createElement(tagName);
    };
    

    /**
     * ドキュメントに書き込む.
     * document.write の Alias
     */
    np.$write = function(str) {
        document.write(str);
    };
    
})(TM);